﻿#pragma once

#include "../../MirControls/MirImageControl.h"
#include "../../MirControls/MirButton.h"
#include <any>

using namespace Client::MirControls;
using namespace Client::MirGraphics;
using namespace Client::MirSounds;

namespace Client::MirScenes::Dialogs
{
    class ChatOptionDialog : public MirImageControl
    {
    public:
        MirButton *FilterTabButton, *ChatTabButton;
        MirButton *CloseButton;

        MirButton *AllButton, *GeneralButton, *WhisperButton, *ShoutButton, *SystemButton, *LoverButton, *MentorButton, *GroupButton, *GuildButton;
        MirButton *TransparencyOnButton, *TransparencyOffButton;

        bool AllFiltersOff = true;

        virtual ~ChatOptionDialog()
        {
            delete FilterTabButton;
            delete ChatTabButton;
            delete CloseButton;
            delete AllButton;
            delete GeneralButton;
            delete WhisperButton;
            delete ShoutButton;
            delete SystemButton;
            delete LoverButton;
            delete MentorButton;
            delete GroupButton;
            delete GuildButton;
            delete TransparencyOnButton;
            delete TransparencyOffButton;
        }

        ChatOptionDialog();

    private:
        void ChatFilterPanel_BeforeDraw(std::any sender, EventArgs *e);

        void SwitchTab(int tab = 0);

        void CheckAllFilters();
        void ToggleAllFilters();

        void UpdateTransparency();

    public:
        void Toggle();
    };
}
